import { http } from "@/utils/http";

// 仓库基本信息接口 - 前端使用的模型
export interface RepositoryItem {
  id: number;
  name: string; // 仓库名称
  cellId?: number; // 小区ID
  cname?: string; // 小区名称
  status: number; // 状态 0:禁用 1:启用
  person: string; // 联系人
  phone: string; // 联系电话
  email: string; // 邮箱
  address: string; // 地址
  remark?: string; // 备注
}

// 后端返回的仓库数据模型
export interface RepositoryBackendItem {
  id: number;
  name: string; // 仓库名称
  cellId?: number; // 小区ID
  cname?: string; // 小区名称
  status: number; // 状态 0:禁用 1:启用
  person: string; // 联系人
  phone: string; // 联系电话
  email: string; // 邮箱
  address: string; // 地址
  remark?: string; // 备注
}

// 查询仓库列表参数
export interface RepositoryListParams {
  page?: number;
  limit?: number;
  name?: string;
}

// 查询仓库列表返回结果
export interface RepositoryListResult {
  code: number;
  data?: {
    list?: RepositoryBackendItem[];
  };
  message: string;
}

// 添加/修改仓库参数
export interface RepositoryPayload {
  id?: number;
  name: string;
  cellId?: number;
  status?: number;
  person?: string;
  phone?: string;
  email?: string;
  address?: string;
  remark?: string;
}



/**
 * 查询仓库列表
 * @param data 查询参数
 * @returns 仓库列表数据
 */
export const getRepositoryList = (data: RepositoryListParams) => {
  return http.request<RepositoryListResult>("post", "repository/list", { data });
};

/**
 * 添加仓库
 * @param data 仓库信息
 * @returns 创建结果
 */
export const createRepository = (data: RepositoryPayload) => {
  return http.request<{ code: number; data?: object; message: string }>("post", "repository/add", { data });
};

/**
 * 修改仓库信息
 * @param data 仓库信息（包含id）
 * @returns 修改结果
 */
export const updateRepository = (data: RepositoryPayload) => {
  return http.request<{ code: number; data?: object; message: string }>("post", "repository/update", { data });
};

/**
 * 根据ID查询仓库信息
 * @param id 仓库ID
 * @returns 仓库详细信息
 */
export const getRepositoryById = (id: number) => {
  return http.request<{ code: number; data?: RepositoryItem; message: string }>("get", "repository/find", { params: { id } });
};

/**
 * 删除仓库信息
 * @param id 仓库ID
 * @returns 删除结果
 */
export const deleteRepository = (id: number) => {
  return http.request<{ code: number; data?: object; message: string }>("get", "repository/delete", { params: { id } });
};

/**
 * 批量删除仓库信息
 * @param data 包含id数组的请求体
 * @returns 删除结果
 */
export const deleteBatchRepository = (data: { ids: number[] }) => {
  return http.request<{ code: number; data?: object; message: string }>("post", "repository/deleteBatch", { data });
};

/**
 * 查询所有仓库信息
 * @returns 所有仓库数据
 */
export const findAllRepository = () => {
  return http.request<{ code: number; data?: object; message: string }>("get", "repository/findAll");
};

/**
 * 修改仓库状态
 * @param id 仓库ID
 * @returns 修改结果
 */
export const updateRepositoryStatus = (id: number) => {
  return http.request<{ code: number; data?: object; message: string }>("get", "repository/updateStatus", { params: { id } });
};